/**
 * Created by hama on 2016/6/13.
 */


var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var fs = require('fs');
var multer = require('multer');

var app = express();

//文件下载的配置
var storage = multer.diskStorage({
    destination:'www/uploads',
    filename:function(req,file,callback){
        var petname = req.cookies.petname;
        callback(null,`${petname}.jpg`);
    }
});
//应用这个配置
var uploads = multer({storage});
//设置下post提交
app.use(bodyParser.urlencoded({extended:true}));
//应用cookie
app.use(cookieParser());
//设置静态资源
app.use(express.static('www'));



//用户post提交注册页面

app.post('/register',function(req,res){
    req.body.ip = req.ip;
    req.body.time = new Date();


    //发送函数
    function send(code,message){
        res.status(200).json({code,message});
    }
    function saveFile(){
        var filename = `users/${req.body.petname}.txt`;
        //fs.exists它是用来检测文件是否存在的这么一个函数.
        //传递了检测文件的文件名，检测完文件名调用回调函数，结果就是exists
        fs.exists(filename,function(exists){
            if(exists){
                send('error','用户名已经存在');
            }else{
                fs.appendFile(filename,JSON.stringify(req.body),function(err){
                    if(err){
                        send('error','系统错误');
                    }else{
                        send('success','注册成功');
                    }
                })
            }
        })
    }
    //创建我们的users文件夹
    fs.exists('users',function(exists){
        if(exists){
            saveFile();
        }else{
            fs.mkdir('users',function(err){
                if(err){
                    send('error','系统错误');
                }else{
                    saveFile();
                }
            })
        }
    })
});
//登录的处理
app.post('/signin',function(req,res){
    //第一步打开对应的用户的文件夹
    var filename = `users/${req.body.petname}.txt`;
    function send(code,message){
        res.status(200).json({code,message});
    }
    //第二步,我先看一下，用户提交的用户名是否注册了
    fs.exists(filename,function(exists){
        if(exists){
            //看看密码
            fs.readFile(filename,function(err,data){
                if(err){
                    send('error','系统错误');
                }else{
                    //把它转化为JS对象
                    var user = JSON.parse(data);
                    //剩下比较密码了
                    if(user.password == req.body.password){
                        //在服务器端创建一个cookie，保存起来，里面
                        //存储的是用户名信息
                        res.cookie('petname',req.body.petname);
                        send('success','登录成功');
                    }else{
                        send('error','密码错误');
                    }
                }
            })
        }else{
            send('error','用户名不存在');
        }
    })
});

//退出
app.get('/signout',function(req,res){
    //清除一下cookie当中petname的信息
    res.clearCookie('petname');
    //返回一个成功的信息.
    res.status(200).json({code:'success'});
});
//启动
app.listen(4500,function(){
    console.log('node 4500 is OK');
});

